﻿/**
* jQuery EasyUI 1.4.3
* Copyright (c) 2009-2015 www.jeasyui.com. All rights reserved.
*
* Licensed under the GPL license: http://www.gnu.org/licenses/gpl.txt
* To use it on other terms please contact us at info@jeasyui.com
* http://www.jeasyui.com/license_commercial.php
*
* jQuery EasyUI datagrid 组件扩展
* jeasyui.extensions.datagrid.insertRow.js
* 开发 落阳
* 最近更新：2018-01-17
*
* 依赖项：
*   1、jquery.jdirk.js
*
* Copyright (c) 2018 Lixilin personal All rights reserved.
*/
(function () {

    $.util.namespace("$.fn.datagrid.extensions");

    var _originalMethod = {};
    $.extend(_originalMethod, {
        insertRow: $.fn.datagrid.methods.insertRow
    });

    var insertRow = function (target, row) {
        var t = $(target),
            state = $.data(target, "datagrid"),
            opts = state.options;
        
        if ($.isFunction(opts.onBeforeInsertRow) && opts.onBeforeInsertRow.call(target, row) == false) { return; }
        _originalMethod.insertRow.call(target, t, row);
        if ($.isFunction(opts.onInsertRow)) { opts.onInsertRow.call(target, row); }
    };

    var methods = {

        //  重写 easyui-datagrid 的 insertRow 方法；参数 row 表示要追加的数据行；
        //  返回值：返回表示当前 easyui-datagrid 组件的 jQuery 链式对象。
        insertRow: function (jq, row) { return jq.each(function () { insertRow(this, row); }); }
    };

    var defaults = {

        //  扩展 easyui-datagrid 的自定义事件；该事件表示执行 insertRow 方法前所触发的动作；该事件回调函数提供如下参数：
        //      row:    表示要进行 insertRow 操作的行数据对象；
        //  该事件函数中的 this 指向当前 easyui-datarid 的 DOM 对象(非 jQuery 对象)；
        //  备注：如果该事件回调函数返回 false，则立即取消即将要执行的 insertRow 操作。
        onBeforeInsertRow: function (row) { },

        //  扩展 easyui-datagrid 的自定义事件；该事件表示执行 insertRow 方法后所触发的动作；该事件回调函数提供如下参数：
        //      row:    表示要进行 insertRow 操作的行数据对象；
        //  该事件函数中的 this 指向当前 easyui-datarid 的 DOM 对象(非 jQuery 对象)；
        onInsertRow: function (index, row) { }
    };

    if ($.fn.datagrid.extensions.defaults) {
        $.extend($.fn.datagrid.extensions.defaults, defaults);
    } else {
        $.fn.datagrid.extensions.defaults = defaults;
    }

    if ($.fn.datagrid.extensions.methods) {
        $.extend($.fn.datagrid.extensions.methods, methods);
    } else {
        $.fn.datagrid.extensions.methods = methods;
    }

    $.extend($.fn.datagrid.defaults, defaults);
    $.extend($.fn.datagrid.methods, methods);

})(jQuery);